#include <iostream>
using namespace std;

class A {
public:
	A (int data):m_data (data) {}
protected:
	int m_data;
};

class B:public A{
public:
	B (int data):A(data) {}
	void set (int data) {
		m_data = data;
	}
};

class C:public A{
public:
	C (int data):A(data) {}
	int get (void) {
		return m_data;
	}
};

class D:public B,public C {
public:
	D (int data):B(data), C(data){}
};

int main(void)
{
	D d(100);
	cout << d.get () << endl; //100
	d.set (200);
	cout << d.get () << endl;//200?
	return 0;
}
